package com.heitian.ssm.utils;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import java.io.*;
/**
 * Created with IntelliJ IDEA.
 * User: mishuai
 * Date: 2018-04-23
 * Time: 18:39
 * Des:
 */
public class DocUtils {

    public static void main(String[] args) {
        DocUtils editor=new DocUtils();
        try {
            editor.docFile();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    public  void docFile() throws Exception {
       /* InputStream bodyIs = new FileInputStream("f:\\2.html");
        InputStream cssIs2 = new FileInputStream("f:\\ueditor.css");
        InputStream cssIs1 = new FileInputStream("f:\\codemirror.css");
        String body = this.getContent(bodyIs);
        String css1 = this.getContent(cssIs1);
        String css2 = this.getContent(cssIs2);*/
        //拼一个标准的HTML格式文档
        String name="1";
        String content = "<html><head><style>"  + "</style></head><body>"  + "</body></html>";
       // String con=new String(content,"UTF-8")
        InputStream is = new ByteArrayInputStream(content.getBytes("GB2312"));
        File file=new File("D:\\4.txt");
        if (!file.isDirectory()) {
            file.createNewFile();
        }else {
            System.out.println("文件已存在");
        }
        System.err.print(file.getName());

        OutputStream os = new FileOutputStream(file.getAbsoluteFile()/*"D:\\毕设\\web-ssm\\src\\main\\webapp\\static\\doc"+"*/);
        this.inputStreamToWord(is, os);
    }

    /**
     * 把is写入到对应的word输出流os中
     * 不考虑异常的捕获，直接抛出
     * @param is
     * @param os
     * @throws IOException
     */
    private void inputStreamToWord(InputStream is, OutputStream os) throws IOException {

        POIFSFileSystem fs = new POIFSFileSystem();
        //对应于org.apache.poi.hdf.extractor.WordDocument
        fs.createDocument(is, "WordDocument");
        fs.writeFilesystem(os);
        os.close();
        is.close();
    }

    /**
     * 把输入流里面的内容以UTF-8编码当文本取出。
     * 不考虑异常，直接抛出
     * @param ises
     * @return
     * @throws IOException
     */
    private String getContent(InputStream... ises) throws IOException {
        if (ises != null) {
            StringBuilder result = new StringBuilder();
            BufferedReader br;
            String line;
            for (InputStream is : ises) {
                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                while ((line=br.readLine()) != null) {
                    result.append(line);
                }
            }
            return result.toString();
        }
        return null;
    }
}
